home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / STAIRS.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  10.1 KB  |  353 lines

  1. 10  'STAIRS - 9 SEP 86 rev. 28 SEP 96
  2. 20  CLS:KEY OFF
  3. 30  COLOR 7,0,4
  4. 40  IF EX$=""THEN EX$="EXIT"
  5. 50  E$=STRING$(80,32)
  6. 60  U$=STRING$(80,205)
  7. 70  UL$=" "+STRING$(27,205)
  8. 80  F1$="####"
  9. 90  F2$="####.##"
  10. 100  PI=3.14159
  11. 110  T$=" STAIRS, LADDERS & RAMPS "
  12. 120  COLOR 11,1:PRINT T$;TAB(61);"by George C. Murphy ";
  13. 130  COLOR 4,0
  14. 140  PRINT STRING$(80,"<0xDF!>");
  15. 150  COLOR 7,0
  16. 160  PRINT " Press number in < > to choose standard units of measure:"
  17. 170  PRINT U$;
  18. 180  PRINT "   < 1 >  Metric
  19. 190  PRINT "   < 2 >  U.S.A./Imperial"
  20. 200  Z$=INKEY$
  21. 210  IF Z$="1"THEN UM=2.54:UM$="cm.":GOTO 250
  22. 220  IF Z$="2"THEN UM=1:UM$="in.":GOTO 250
  23. 230  GOTO 200
  24. 240  '
  25. 250  '.....start
  26. 260  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  27. 270  RO=3:CO=23:GOSUB 2240     'step dimension diagram
  28. 280  LOCATE 12,1
  29. 290  PRINT " ENTER: Level-to-Level height HT (";UM$;")............";
  30. 300  INPUT H:H=H/UM
  31. 310  IF H=0 THEN LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1:GOTO 290
  32. 320  PRINT " Has a maximum allowable spread SP been determined?   (y/n)"
  33. 330  Z$=INKEY$:IF Z$=""THEN 330
  34. 340  LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
  35. 350  IF Z$="n"THEN 810
  36. 360  IF Z$="y"THEN 380
  37. 370  GOTO 330
  38. 380  PRINT " ENTER: Maximum allowable spread SP (";UM$;").........";
  39. 390  INPUT L:L=L/UM
  40. 400  IF L=0 THEN 690
  41. 410  A=ATN(H/L)
  42. 420  IF A*180/PI>=20.45 THEN 560
  43. 430  '
  44. 440  '.....calculation for step ramp
  45. 450  N=INT(H/5)           'no.of risers
  46. 460  IF N<=1 THEN 520
  47. 470  P=N-1                'no.of treads
  48. 480  R=H/N
  49. 490  T=L/P                'run
  50. 500  GOTO 1110
  51. 510  '
  52. 520  '.....calculation for inclined ramp
  53. 530  P=0:R=0:T=0
  54. 540  GOTO 1110
  55. 550  '
  56. 560  '.....calculation for restricted length
  57. 570  N=N+1                'number of risers
  58. 580  R=H/N                'rise
  59. 590  T=20-(4*R/3)
  60. 600  IF ((T*N-T)<=L) AND (R>=5) THEN 570
  61. 610  '
  62. 620  N=N-1:P=N-1:R=H/N:T=20-(4*R/3)
  63. 630  IF R>13.5 THEN A=PI/2
  64. 640  IF T<=0 THEN A=PI/2
  65. 650  L=P*T
  66. 660  IF A=PI/2 THEN 690   'vertical ladder
  67. 670  IF A>=0 THEN 1110     'angle <90<UNK! {00F8}>
  68. 680  '
  69. 690  '.....vertical ladder
  70. 700  P=CINT(H/13.5)       'no. of rungs
  71. 710  N=P-1                'no.of full risers
  72. 720  TBR=(H-N*13.5)/2     'top and bottom risers
  73. 730  A=PI/2               'angle
  74. 740  T=0                  'run
  75. 750  R=13.5               'rise
  76. 760  X=0                  'string
  77. 770  Y=0                  'stringer
  78. 780  L=0                  'length
  79. 790  GOTO 1100
  80. 800  '
  81. 810  COLOR 0,7
  82. 820  IF UM=1 THEN Q$="7.5 in.( 8.0 in.":GOTO 840
  83. 830  Q$="19 cm.( 20 cm."
  84. 840  PRINT " Recommended maximum rise = ";Q$;" for economy ";
  85. 850  PRINT "residential.)"
  86. 860  COLOR 7,0
  87. 870  PRINT " ENTER: Maximum rise desired (";UM$;")................";
  88. 880  INPUT MAX:MAX=MAX/UM
  89. 890  IF UM=1 THEN MIN$="5 in.":MAX$="13.5 in."ELSE MIN$="12.5 cm.":MAX$="34 cm."
  90. 900  IF MAX>=5 AND MAX<= 13.5 THEN 970
  91. 910  IF MAX<5 THEN PRINT " Minimum riser = ";MIN$;" - ";:GOTO 930
  92. 920  IF MAX>13.5 THEN PRINT " Maximum riser = ";MAX$;
  93. 930  PRINT " - Press any key to continue......"
  94. 940  IF INKEY$=""THEN 940
  95. 950  GOSUB 2100:LOCATE CSRLIN-2:GOTO 810
  96. 960  '
  97. 970  '.....calculation for unrestricted length
  98. 980  R=MAX
  99. 990  N=CINT(H/R)          'number of risers
  100. 1000  P=N-1                'number of treads
  101. 1010  R=H/N:IF R<5 THEN N=N-1:P=N-1:GOTO 1010
  102. 1020  IF R>MAX THEN N=N+1:P=N-1:R=H/N
  103. 1030  T=20-4*R/3           'run
  104. 1040  L=P*T                'length
  105. 1050  '
  106. 1060  A=ATN(R/T)           'angle in radians
  107. 1070  AD=A*180/PI          'angle in degrees
  108. 1080  IF(AD<33)AND(AD>=17.35)THEN T=25+(33-AD)/15.65-2*R  'stairs with low pitch
  109. 1090  GOTO 1110
  110. 1100  '
  111. 1110  '.....determine type
  112. 1120  AD=A*180/PI       'angle in degrees
  113. 1130  IF P=0 THEN B$=" INCLINED RAMP ":GOSUB 2130:GOSUB 3020:GOTO 1240
  114. 1140  IF AD=90 THEN B$=" VERTICAL LADDER ":TR$="rungs.":GOSUB 2130:GOSUB 2760:GOTO 1240
  115. 1150  '
  116. 1160  IF AD>77 THEN B$=" INCLINED LADDER ":TR$="rungs.":GOSUB 2130:GOSUB 2650:GOTO 1240
  117. 1170  '
  118. 1180  IF AD>48.37 THEN B$=" OPEN-RISER STEPLADDER ":TR$="steps.":GOSUB 2130:GOSUB 2510:GOTO 1240
  119. 1190  '
  120. 1200  IF AD>20.45 THEN B$=" STAIRWAY ":TR$="treads":GOSUB 2130:GOSUB 2380:GOTO 1240
  121. 1210  '
  122. 1220  IF AD<=20.45 THEN B$=" STEP RAMP ":TR$="ramps.":GOSUB 2130:GOSUB 2900:GOTO 1240
  123. 1230  '
  124. 1240  '.....screen display
  125. 1250  VIEW PRINT 11 TO 24:CLS:VIEW PRINT:LOCATE 10
  126. 1260  LOCATE CSRLIN,INT(80-LEN(B$))/2
  127. 1270  COLOR 15,1:PRINT B$
  128. 1280  IF B$="RAMP"THEN 1540
  129. 1290  COLOR 7,0
  130. 1300  IF B$<>" STAIRWAY " AND B$<>" OPEN-RISER STEPLADDER " THEN 1480
  131. 1310  PRINT " Do you want to know stairwell SW and headroom HR dimensions?";
  132. 1320  COLOR 0,7:PRINT "   (y/n) ":COLOR 7,0
  133. 1330  Z$=INKEY$:IF Z$=""THEN 1330
  134. 1340  LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
  135. 1350  IF Z$="y"THEN 1380
  136. 1360  IF Z$="n"THEN 1480
  137. 1370  GOTO 1330
  138. 1380  PRINT " ENTER: Floor thickness (";UM$;").....................";
  139. 1390  INPUT F:F=F/UM
  140. 1400  LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
  141. 1410  FOR Z=1 TO N
  142. 1420  HR=Z*R-F
  143. 1430  IF HR>=75 THEN 1450
  144. 1440  NEXT Z
  145. 1450  X=N-Z    'number of runs
  146. 1460  SW=(Z-1)*T
  147. 1470  '
  148. 1480  I$=" "+UM$
  149. 1490  TB=20      'tab
  150. 1500  IF P=0 THEN 1540     'inclined ramp
  151. 1510  PRINT TAB(TB);"Number of ";TR$;"..............";USING F1$;P
  152. 1520  IF AD=90 THEN 1690
  153. 1530  PRINT TAB(TB);"Number of risers..............";USING F1$;N
  154. 1540  PRINT TAB(TB);"Pitch Angle...............cdb=";USING F2$;AD;:PRINT "<UNK! {00F8}>"
  155. 1550  IF P=0 THEN 1670
  156. 1560  IF B$="RAMP"THEN 1810
  157. 1570  PRINT TAB(TB);"Run........................cd=";USING F2$;T*UM;:PRINT I$;
  158. 1580  J=T:GOSUB 3140
  159. 1590  PRINT TAB(TB);"Rise.......................bc=";USING F2$;R*UM;:PRINT I$;
  160. 1600  J=R:GOSUB 3140
  161. 1610  X=SQR(R^2+T^2)
  162. 1620  PRINT TAB(TB);"String.....................bd=";USING F2$;X*UM;:PRINT I$;
  163. 1630  J=X:GOSUB 3140
  164. 1640  Y=X*P
  165. 1650  PRINT TAB(TB);"Stringer length............ae=";USING F2$;Y*UM;:PRINT I$;
  166. 1660  J=Y:GOSUB 3140
  167. 1670  PRINT TAB(TB);"Spread.....................SP=";USING F2$;L*UM;:PRINT I$;
  168. 1680  J=L:GOSUB 3140
  169. 1690  PRINT TAB(TB);"Height.....................HT=";USING F2$;H*UM;:PRINT I$;
  170. 1700  J=H:GOSUB 3140
  171. 1710  IF F*HR=0 THEN 1780
  172. 1720  PRINT TAB(TB);"Floor thickness............FL=";USING F2$;F*UM;:PRINT I$;
  173. 1730  J=F:GOSUB 3140
  174. 1740  PRINT TAB(TB);"Headroom clearance.........HR=";USING F2$;HR*UM;:PRINT I$;
  175. 1750  J=HR:GOSUB 3140
  176. 1760  PRINT TAB(TB);"Stairwell minimum length...SW=";USING F2$;SW*UM;:PRINT I$;
  177. 1770  J=SW:GOSUB 3140
  178. 1780  IF AD=90 THEN 1880
  179. 1790  IF P=0 THEN 1960
  180. 1800  '.....calculate handrails height
  181. 1810  IF A<=90 THEN B=34+(A-48.4)/41.6*14
  182. 1820  IF A<=48 THEN B=33+(A-39.2)/9.2
  183. 1830  IF A<=39.2 THEN B=33
  184. 1840  IF A<=24 THEN B=33+(24-A)/8
  185. 1850  PRINT TAB(TB);"Handrail height above nosing..";USING F2$;B*UM;:PRINT I$;
  186. 1860  J=B:GOSUB 3140
  187. 1870  GOTO 1960
  188. 1880  PRINT TAB(TB);"Bottom to lowest rung.......B=";USING F2$;TBR*UM;:PRINT I$;
  189. 1890  J=TBR:GOSUB 3140
  190. 1900  IF P=1 THEN 1930
  191. 1910  PRINT TAB(TB);"Rise.......................bc=";USING F2$;R*UM;:PRINT I$;
  192. 1920  J=R:GOSUB 3140
  193. 1930  PRINT TAB(TB);"Top to highest rung.........T=";USING F2$;TBR*UM;:PRINT I$;
  194. 1940  J=TBR:GOSUB 3140
  195. 1950  '
  196. 1960  IF B$<>" STAIRWAY " THEN 2070
  197. 1970  IF R<=7.5 THEN 2070
  198. 1980  IF R>8 THEN 2000
  199. 1990  IF R>7.5 THEN 2030
  200. 2000  J$="20 cm.":IF UM=1 THEN J$="8 in."
  201. 2010  COLOR 12,0:PRINT " NOTE: Rises in excess of ";J$;" are not permitted ";
  202. 2020  PRINT "by most building codes.";:GOTO 2070
  203. 2030  Z$="19 cm.":IF UM=1 THEN Z$="7RENUM in."
  204. 2040  COLOR 12,0:PRINT " NOTE: Rises over ";Z$;" tend to result in ";
  205. 2050  PRINT "steep uncomfortable stairways.";:GOTO 2070
  206. 2060  '
  207. 2070  COLOR 7,0:GOSUB 3400:CLS:RUN EX$
  208. 2080  END
  209. 2090  '
  210. 2100  FOR I=CSRLIN-2 TO CSRLIN-1:LOCATE I:PRINT STRING$(80,32):NEXT I
  211. 2110  LOCATE CSRLIN-2:RETURN
  212. 2120  '
  213. 2130  '.....animate diagram
  214. 2140  CLS
  215. 2150  RO=2:CO=24
  216. 2160  GOSUB 2240
  217. 2170  PRINT E$;
  218. 2180  FOR Z=24 TO 46
  219. 2190  RO=2:CO=Z
  220. 2200  GOSUB 2240
  221. 2210  NEXT Z
  222. 2220  RETURN
  223. 2230  '
  224. 2240  '.....diagram
  225. 2250  REM     RO=row
  226. 2260  REM     CO=column
  227. 2270  LOCATE RO+0,CO:PRINT " FL    CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND SP SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL"
  228. 2280  LOCATE RO+1,CO:PRINT "  BLOADDEFDBLTHENTHENTHENINSTRTHENTHENTHENCLOSEDEFSNGSOUNDSOUNDSOUNDSOUND SW SOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLKEYTHENTHEN DEFSNGCOLOR"
  229. 2290  LOCATE RO+2,CO:PRINT " VARPTRMOTORDEFDBLTHENTHENTHENINSTRTHENTHENTHENLOAD           KEYTHENTHENTHENLOADe   CALL"
  230. 2300  LOCATE RO+3,CO:PRINT " CALL     CALL           KEYTHENTHENTHENLOAD        CALL"
  231. 2310  LOCATE RO+4,CO:PRINT " HR    CALL       KEYTHENTHENTHENLOAD           HT"
  232. 2320  LOCATE RO+5,CO:PRINT " CLSSOUNDSOUNDSOUNDSOUNDSOUNDBEEPDEFDBL cKEYTHENTHENTHENLOADd    BASIC      CALL"
  233. 2330  LOCATE RO+6,CO:PRINT "       KEYTHENTHENTHENLOADb       ELEMENTS    CALL"
  234. 2340  LOCATE RO+7,CO:PRINT "    THENTHENTHENLOADa DEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'"
  235. 2350  LOCATE RO+8:PRINT U$;
  236. 2360  RETURN
  237. 2370  '
  238. 2380  '.....stairway diagram
  239. 2390  RO=2  'row
  240. 2400  CO=8  'column
  241. 2410   LOCATE RO+0,CO:PRINT "         CALLDEFSNGSOUNDSOUND Run SOUNDSOUNDDEFDBLCALL"
  242. 2420   LOCATE RO+1,CO:PRINT "     VARPTRSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLKEYTHENTHENTHENTHEN"
  243. 2430   LOCATE RO+2,CO:PRINT "     CALL   CALL           SCREENTHEN<0xCB!>THENTHEN DEFSNGSOUNDCOLOR"
  244. 2440   LOCATE RO+3,CO:PRINT "   Rise  CALL     RiserSOUNDSOUNDDEFDBLOPEN     CALL"
  245. 2450   LOCATE RO+4,CO:PRINT "     CALL   CALL TreadSOUNDCOLOR     OPEN   Rise"
  246. 2460   LOCATE RO+5,CO:PRINT "     CLSSOUNDSOUNDDEFDBLKEYTHENTHENTHENTHENTHENTHENTHENINSTRTHENTHENTHENTHENTHENRANDOMIZE"
  247. 2470   LOCATE RO+6,CO:PRINT "         SCREENTHEN<0xCB!>THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD DEFSNGSOUNDSOUNDSOUND'"
  248. 2480   LOCATE RO+7,CO:PRINT "NosingSOUNDSOUNDDEFDBLCALL CALLDEFSNGSOUNDSOUND Run SOUNDSOUNDDEFDBLCALL"
  249. 2490   RETURN
  250. 2500  '
  251. 2510  '.....stepladder diagram
  252. 2520  RO=2  'row
  253. 2530  CO=5  'column
  254. 2540  D$="3"+CHR$(34)+"- 5"+CHR$(34)
  255. 2550   LOCATE RO+0,CO:PRINT "      SOUNDSOUNDDEFDBLCALL Run CALLDEFSNGSOUNDSOUND "
  256. 2560   LOCATE RO+1,CO:PRINT "         CALL     KEYTHENTHENTHENTHENTHENTHENCLOSEDEFSNGSOUNDCOLOR"
  257. 2570   LOCATE RO+2,CO:PRINT "         CALL     SCREENTHENTHENTHENTHENINSTRTHENLOAD  CALL"
  258. 2580   LOCATE RO+3,CO:PRINT "         CALL     StepSOUND'  Rise
  259. 2590   LOCATE RO+4,CO:PRINT "         CALL VARPTRSOUNDStep        CALL"
  260. 2600   LOCATE RO+5,CO:PRINT "NosingSOUNDSOUNDDEFDBLKEYTHENINSTRTHENTHENTHENTHENCLOSEDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'"
  261. 2610   LOCATE RO+6,CO:PRINT "         SCREENTHENTHENTHENTHENTHENTHENLOAD"
  262. 2620   LOCATE RO+7,CO:PRINT "      SOUNDSOUNDDEFDBLCALL      CALLDEFSNGSOUNDSOUND";D$
  263. 2630   RETURN
  264. 2640  '
  265. 2650  '.....inclined ladder diagram
  266. 2660  RO=2  'row
  267. 2670  CO=10 'column
  268. 2680   LOCATE RO+0,CO:PRINT "   SOUNDSOUNDDEFDBLCALL Run CALLDEFSNGSOUNDSOUND"
  269. 2690   LOCATE RO+1,CO:PRINT "  VARPTRSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDDEFDBL POINT DEFSNGSOUNDSOUNDRung"
  270. 2700   LOCATE RO+2,CO:PRINT "  CALL   CALL"
  271. 2710   LOCATE RO+3,CO:PRINT "Rise  CALL"
  272. 2720   LOCATE RO+4,CO:PRINT "  CALL   CALL"
  273. 2730   LOCATE RO+5,CO:PRINT "  CLSSOUNDDEFDBL POINT DEFSNGSOUNDSOUND Rung"
  274. 2740  RETURN
  275. 2750  '
  276. 2760  RO=1  'row
  277. 2770  CO=10 'column
  278. 2780  REM     CO=column
  279. 2790  LOCATE RO+0,CO:PRINT "  VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBL VARPTRSOUNDDEFDBLVARPTRSOUNDCOLOR Top"
  280. 2800  LOCATE RO+1,CO:PRINT "  CALL      TCLSSOUNDDEFDBLCALLPOINTCALL"
  281. 2810  LOCATE RO+2,CO:PRINT "  CALL          CALL CALL"
  282. 2820  LOCATE RO+3,CO:PRINT "  CALL       VARPTRSOUNDDEFDBLCALLPOINTCALL"
  283. 2830  LOCATE RO+4,CO:PRINT " HT     Rise CALL CALL"
  284. 2840  LOCATE RO+5,CO:PRINT "  CALL       CLSSOUNDDEFDBLCALLPOINTCALLDEFSNGSOUNDRungs"
  285. 2850  LOCATE RO+6,CO:PRINT "  CALL          CALL CALL"
  286. 2860  LOCATE RO+7,CO:PRINT "  CALL      BVARPTRSOUNDDEFDBLCALLPOINTCALL"
  287. 2870  LOCATE RO+8,CO:PRINT "  CLSSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBL CLSSOUNDDEFDBLCLSSOUND' Bottom"
  288. 2880  RETURN
  289. 2890  '
  290. 2900  '.....step ramp diagram
  291. 2910  RO=2
  292. 2920  CO=7
  293. 2930  LOCATE RO+1,CO:PRINT "  CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND SP SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL"
  294. 2940  LOCATE RO+2,CO:PRINT "  CALL                       CALL"
  295. 2950  LOCATE RO+3,CO:PRINT "  CALL       CALLDEFSNGSOUNDRunSOUNDDEFDBLCALL       KEYTHEN DEFSNGSOUNDCOLOR"
  296. 2960  LOCATE RO+4,CO:PRINT "  CALLRiseVARPTRSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLKEYTHENTHENTHENTHENTHENTHENTHENLOAD    CALL"
  297. 2970  LOCATE RO+5,CO:PRINT "  CALL    CLSSOUNDDEFDBLKEYTHENTHENFNTHENTHENTHENTHENLOAD            HT"
  298. 2980  LOCATE RO+6,CO:PRINT "  KEYTHENTHENTHENTHENTHENTHENTHENLOAD  CLSSOUNDSOUNDRamp           CALL"
  299. 2990  LOCATE RO+7,CO:PRINT " THENLOAD DEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'"
  300. 3000  RETURN
  301. 3010  '
  302. 3020  '.....inclined ramp diagram
  303. 3030  RO=3  'row
  304. 3040  CO=10 'column
  305. 3050  LOCATE RO+0,CO:PRINT "      CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUND SP SOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL"
  306. 3060  LOCATE RO+1,CO:PRINT "      CALL                CALL"
  307. 3070  LOCATE RO+2,CO:PRINT "  VARPTRSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBL POINT"
  308. 3080  LOCATE RO+3,CO:PRINT " HT   CALL                C"
  309. 3090  LOCATE RO+4,CO:PRINT "  CLSSOUNDDEFDBL POINT................."
  310. 3100  LOCATE RO+5,CO:PRINT "      A                B"
  311. 3110  LOCATE RO+6,CO:PRINT "Inclined ramp between A & C
  312. 3120  RETURN
  313. 3130  '
  314. 3140  '.....convert decimal to fraction
  315. 3150  II=J                'dimension in decimal inches
  316. 3160  FT=0                'set feet to 0
  317. 3170  IF II>12 THEN FT=INT(II/12):II=II-FT*12
  318. 3180  IN=INT(II)          'whole inches
  319. 3190  FR=II-IN            'decimal part of inch
  320. 3200  '.....calculate fraction
  321. 3210  DD=64               'denominator
  322. 3220  EE=FR*DD            'enumerator
  323. 3230  IF EE=0 THEN DD=0:GOTO 3280
  324. 3240  EE=CINT(EE/2):DD=DD/2
  325. 3250  IF EE=0 THEN DD=0:GOTO 3280
  326. 3260  IF EE/2=INT(EE/2)THEN 3240
  327. 3270  '
  328. 3280  IF EE=1 AND DD=1 THEN IN=IN+1:EE=0:DD=0
  329. 3290  IF IN=12 THEN FT=FT+1:IN=0
  330. 3300  IN$=STR$(IN)
  331. 3310  FT$=STR$(FT)
  332. 3320  E$=STR$(EE)
  333. 3330  D$=STR$(DD):D$=RIGHT$(D$,LEN(D$)-1)
  334. 3340  PRINT "  (";FT$;"'-";IN$;
  335. 3350  IF EE=0 THEN 3370
  336. 3360  PRINT E$;"/";D$;
  337. 3370  PRINT CHR$(34);")"
  338. 3380  RETURN
  339. 3390  '
  340. 3400  'HARDCOPY
  341. 3410  GOSUB 3520:LOCATE 25,2:COLOR 14,6
  342. 3420  PRINT " Press 1 to print screen, 2 to print screen & ";
  343. 3430  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  344. 3440  Z$=INKEY$:IF Z$="3"THEN GOSUB 3520:RETURN
  345. 3450  IF Z$="1"OR Z$="2"THEN GOSUB 3520:GOTO 3470
  346. 3460  GOTO 3440
  347. 3470  FOR QX=1 TO 24:FOR QY=1 TO 80
  348. 3480  LPRINT CHR$(SCREEN(QX,QY));
  349. 3490  NEXT QY:NEXT QX
  350. 3500  IF Z$="2"THEN LPRINT CHR$(12)
  351. 3510  GOTO 3410
  352. 3520  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  353.